package tema.pdm;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import android.app.ListActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

class OrasAdapter extends BaseAdapter
{
	private ListActivity context;
	private ArrayList<Oras> personaje;
	Comparator<Oras> comparator;
	
	private static OrasAdapter singleton=null;
	
	private class PTag{
		TextView nume;
		ImageView img;
	}
	
	OrasAdapter(ListActivity context)
	{
		this.context = context;
		personaje=new ArrayList<Oras>();
		comparator = new Comparator<Oras>()
		{

			@Override
			public int compare(Oras o1, Oras o2) {
				return ((Oras)o1).name.compareToIgnoreCase(((Oras)o2).name);
			}
			
		};
	}
	
	public static OrasAdapter getInstance(ListActivity v)
	{
		if(singleton==null)
		{
			singleton=new OrasAdapter(v);
			return singleton;
		}
		singleton.context=v;
		return singleton;
	}
	
	public boolean addOras(Oras p)
	{
		int n = Collections.binarySearch(personaje, p, comparator);
		Log.d("evenimente", "Numarul returnat este "+n);
		if(n<0)
			personaje.add(-n-1,p);
		else
			if(n == 0)
				personaje.add(0,p);
			else
				return false;
			//personaje.add(n,p);
		this.notifyDataSetChanged();
		return true;
	}
	
	public void delOras(int idx)
	{
		personaje.remove(idx);
		//Collections.sort(personaje, comparator);
		this.notifyDataSetChanged();		
	}
	
	public int getCount()
	{
		return personaje.size();
	}
	
	public Object getItem(int arg0)
	{
		return personaje.get(arg0);
	}

	@Override
	public long getItemId(int arg0) {
		// TODO Auto-generated method stub
		return arg0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		View element = convertView;
		if(convertView == null)
		{
			LayoutInflater inflater = context.getLayoutInflater();
			element = inflater.inflate(R.layout.element, null);
			PTag p = new PTag();
			p.nume=(TextView)element.findViewById(R.id.element_nume);
			p.img= (ImageView)element.findViewById(R.id.element_imagine);
			element.setTag(p);
		}
		else
			element= convertView;
		PTag p=(PTag)element.getTag();
		p.nume.setText(personaje.get(position).name);
		p.img.setImageResource(personaje.get(position).img);
		return element;
	}
	
	public void destroy(){
		personaje.clear();
		singleton=null;
	}
}